/**
 * 文件：DefaultItemElement.java
 * 包名：com.ronri.list.editview;   --- 正式发布时需要修正
 * 标题：默认的Item元素
 * 说明：默认的Item风格元素
 * 作者：MS During
 * 日期：2017-04-10
 * 历史：
 */
package com.ronri.list.editview;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.cz.nongyetongv5.R;
import com.ronri.list.editview.controls.BaseControl;
import com.ronri.list.editview.controls.IEditControlEvent;

import java.io.FileInputStream;
import java.io.FileNotFoundException;

public class DefaultItemElement extends AbstractItemElement {

    final private String _TAG = "DefaultItemElement";
    View cView = null;
    /***
     * 构造函数
     * @param context
     * @param szTitle
     * @param szInfo
     * @param dLeftImage
     * @param dRightImage
     * @param szFieldName
     * @param szValue
     * @param bStatus
     */
    public DefaultItemElement(
            Context context,
            String szTitle,
            String szInfo,
            Drawable dLeftImage,
            Drawable dRightImage,
            String szFieldName,
            String szValue,
            boolean bStatus) {
        super(context, szTitle, szInfo, dLeftImage, dRightImage, szFieldName, szValue, bStatus);

        // 设置当前的对象的名称
        this.ControlName = "defaultView";
    }

    public DefaultItemElement(Context context,
                              String szTitle,
                              String szInfo,
                              Drawable dLeftImage,
                              Drawable dRightImage,
                              String szFieldName,
                              String szValue,
                              boolean bStatus,
                              BaseControl control){
        super(context, szTitle, szInfo, dLeftImage, dRightImage, szFieldName, szValue, bStatus);

        // 绑定控件
        Control = control;

        // 设置当前的对象的名称
        this.ControlName = "defaultView";
    }
    /***
     * 覆盖创建View函数
     * @param parent
     * @return
     */
    @Override
    public View CreateView(ViewGroup parent) {

        // 创建默认视图
        cView = super.CreateView(parent);

        // 获取标题元素
        TextView tvTitle = (TextView) cView.findViewById(R.id.title);

        // 设置标题
        tvTitle.setText(this.Title);

        // 获取信息元素
        TextView tvInfo = (TextView) cView.findViewById(R.id.info);

        // 设置显示的信息
        tvInfo.setText(this.Info);

        // 设置图标
        if (this.RightImage != null){
            // 视图View
            //ImageView ivImage = (ImageView)cView.findViewById(R.id.leftimg);
            //ivImage.setImageDrawable(this.RightImage);
        }

        // 判断当前状态，并设置状态图标
        if(this.LeftImage != null)
        {
            if(this.IsOK() == 1){
                ImageView ivImage = (ImageView)cView.findViewById(R.id.rightimg);
                ivImage.setImageDrawable(this.LeftImage);
            }
        }

        return cView;
    }

    /***
     * 加载本地图片
     * @param url
     * @return
     */
    public static Bitmap getLoacalBitmap(String url) {
        try {
            FileInputStream fis = new FileInputStream(url);

            ///把流转化为Bitmap图片
            return BitmapFactory.decodeStream(fis);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
            return null;
        }
    }

    /***
     * 覆盖格式化输出
     * @return
     */
    @Override
    public String FormatInfo(String Value) {
        return Value;
    }

    /***
     * 执行弹框操作
     */
    @Override
    public void Excute() {

        if (Control instanceof BaseControl){

            // 控件事件处理
            Control.BaseControlEevnt = new IEditControlEvent() {
                @Override
                public boolean ReturnValue(Object sender) {

                    // 获取到数据
                    return true;
                }

                @Override
                public Object GetItemData() {
                    // 返回数据
                    return null;
                }
            };

            Control.ShowEditControl(cView);
        }
    }
}
